package a_Exception;

import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Test02 类用于演示文件操作中的异常处理。
 *
 * @author Cheng-02
 * @version V1.0
 * @since 2024/3/31
 */
public class Test03 {
    public static void main(String[] args) {
        // 尝试添加一个不以 .txt 结尾的文件，预期会抛出 FileNotFoundException
        String s = ".txt1";
        /*try {
            add(s);  // 尝试添加文件，如果文件后缀名不对，会抛出 FileNotFoundException
        } catch (IOException e1){
            System.out.println(e1);
        }*/
        try {
            add(s);
        } catch (Exception e1) {
            e1.printStackTrace();// 打印详细的异常堆栈信息
        }

        // 下面是三个操作的演示，这些操作在本示例中没有实现具体的逻辑
        delete(s);   // 删除文件操作
        update(s);   // 更新文件操作
        search(s);   // 搜索文件操作
    }

    /**
     * 更新文件操作的演示方法。
     *
     * @param s 代表文件名的字符串
     */
    private static void update(String s) {
        System.out.println("update");
    }

    /**
     * 搜索文件操作的演示方法。
     *
     * @param s 代表文件名的字符串
     */
    private static void search(String s) {
        System.out.println("search");
    }

    /**
     * 删除文件操作的演示方法。
     *
     * @param s 代表文件名的字符串
     */
    private static void delete(String s) {
        System.out.println("delete");
    }

    /**
     * 添加文件操作的演示方法。如果文件名不以 .txt 结尾，将抛出 FileNotFoundException。
     *
     * @param s 代表文件名的字符串
     * @throws FileNotFoundException 如果文件名不以 .txt 结尾，则抛出此异常
     */
    private static void add(String s) throws FileNotFoundException, IOException {
        if (s == null) {
            throw new IOException("文件名不能为空");
        }
        if (!s.endsWith(".txt")) {
            throw new FileNotFoundException("文件后缀名不对");
        }
        System.out.println("我要执行了");
    }
}
